# 
# Created with PyCharm.
# Description :
# User: jiume
# Date: 2024-12-08
# Time: 11:26
#
# class Person():
#     def __init__(self,name,age,gender):
#         self.name = name
#         self.age = age
#         self.gender = gender
#     def show(self):
#         print(f'我叫{self.name},今年{self.age},性别是{self.gender}')
#
# class Father(Person):
#     def __init__(self,name,age,gender):
#         # 可以直接调用父类的初始化方法
#         super().__init__(name,age,gender)
#         # 下面这种方式是错误的
#         # super().name = name
#         # super().age = age
#         # super().gender = gender
#         # 下面的方式也行，但是不推荐
#         # self.name = name
#         # self.age = age
#         # self.gender = gender
#
# class Mother(Person):
#     def __init__(self, name, age, gender):
#         # 可以直接调用父类的初始化方法
#         super().__init__(name, age, gender)
#         # 下面这种方式是错误的
#         # super().name = name
#         # super().age = age
#         # super().gender = gender
#         # 下面的方式也行，但是不推荐
#         # self.name = name
#         # self.age = age
#         # self.gender = gender
#
# class Son(Father, Mother):
#     def __init__(self, name, age, gender):
#         # 可以直接调用父类的初始化方法
#         super().__init__(name,age,gender)
#         # 这里的self代指当前Son类的实例对象
#         # Mother.__init__(self,name,age,gender)
#         # 下面这种方式是错误的
#         # super().name = name
#         # super().age = age
#         # super().gender = gender
#         # 下面的方式也行，但是不推荐
#         # self.name = name
#         # self.age = age
#         # self.gender = gender
#
# father = Father('A',40,'男')
# mother = Mother('B',35,'女')
# son = Son('C',10,'男')
#
# father.show()
# mother.show()
# son.show()

# class Animal():
#     def __init__(self,name,age):
#         self.name = name
#         self.age = age
#
#     def eat(self):
#         print(f'{self.name}正在吃食物，补充体力')
#
# class Dog(Animal):
#     def __init__(self,name,age):
#         super().__init__(name,age)
#     # 由于Animal类的eat方法只是随便说在吃啥，并不具体，
#     # 但我们想要打印出具体的食物，因此可以重写（外壳不变，核心变化）
#     def eat(self):
#         print(f'{self.name}正在吃狗粮~')
#
# class Cat(Animal):
#     def __init__(self,name,age):
#         super().__init__(name,age)
#
# dog = Dog('大白', 5)
# # 子类重写父类的方法之后，父类再去调用eat方法，就不再是调用父类的，而是自己的
# dog.eat()
#
# cat = Cat('小白', 3)
# # 子类没有重写父类的eat方法，因此还是去调用父类的eat方法
# cat.eat()